#ifndef STORAGE_STORAGE_BASE_HPP
#define STORAGE_STORAGE_BASE_HPP

#include "Storage/CommonStorageConfig.hpp"

namespace CaseDB { class Connection; }

namespace Storage
{

/// \ingroup Storage
/// \brief It requires the basic information that will be needed by database storage specialization.
///
/// The basic required information consists of database connection.
/// \warning The storage object doesn't own the database connection!
class COMMON_STORAGE_API DbStorageBase
{
public:
	/// \brief It initializes the database connection.
	/// \param pDbConnection the database connection to be used for storage operations.
	/// \pre the database connection is not NULL.
	DbStorageBase( CaseDB::Connection* pDbConnection);
	
	/// \brief Dummy destructor.
	virtual ~DbStorageBase();

protected:
	CaseDB::Connection* pDbConnection_;
};


} // namespace Storage

#endif // STORAGE_STORAGE_BASE_HPP